package com.kapcb.context.constant;

import com.google.common.collect.ImmutableSet;
import com.kapcb.common.constant.PropertiesConstant;
import com.kapcb.common.constant.StringPool;

/**
 * <a>Title: ApplicationContextConstant </a>
 * <a>Author: cb <a>
 * <a>Description: ApplicationContextConstant <a>
 *
 * @author cb
 * @version 1.0
 * @date 2024/4/19 10:11 PM
 * @since 1.0
 */
public interface ApplicationContextConstant {

    String USER_ID = "x-user-id";

    String USER_INFO = "x-user-info";

    /**
     * 默认透传到上下文的字段公共前缀
     */
    String TRANSPORT_PREFIX = "x-kapcb-";

    /**
     * 不允许自动透传到上下文的字段
     */
    ImmutableSet<String> NOT_TRANSPORT_KEY = ImmutableSet.of();

    String THREAD_POOL = PropertiesConstant.PROPERTIES_PREFIX + ".thread";

    String REPORT_LISTENER = PropertiesConstant.PROPERTIES_PREFIX + ".listener.report.";

    String REQUEST_HANDLED_LISTENER = PropertiesConstant.PROPERTIES_PREFIX + ".listener.requestHandled.";

    String SERVER_RUN_STATUS_LISTENER = PropertiesConstant.PROPERTIES_PREFIX + ".listener.runStatus.";

    String ONCE_PRE_APPLICATION_STARTED_LISTENER = PropertiesConstant.PROPERTIES_PREFIX + ".listener.oncePreApplicationStarted.";

}
